/*
                  MapInfo Class Definition
*/

#ifndef MAPINFO_H
#define MAPINFO_H

#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <string>
#include <map>
#include <iostream>
#include <vector>

#include "Functions.h"
#include "StringUtil.h"

using namespace std;

struct MapData
{
    MapData(string strNewName, string strNewRecommendedPlayers, string strNewSize)
    {
        strName = strNewName;
        strSize = strNewSize;
        strRecommendedPlayers = strNewRecommendedPlayers;
    }

    ~MapData()
    {

    }

    string strName;
    string strSize;
    string strRecommendedPlayers;
};

class MapInfo
{
    public:
        ~MapInfo() {}

        static void LoadMapData(const string& strFilepath);

        static void FreeData();

        static MapData* GetCurrentMap();
        static void SetCurrentMap(string strMap);

        static vector<string> GetMapNames();

    private:
        MapInfo() {}

        static string strCurrentMap;

        static map<string, MapData*> Maps;
};

#endif
